The invention relates generally to a method and apparatus for interacting with virtual objects in a haptic virtual reality environment, and more specifically to a method and apparatus for using virtual tools to interact with virtual objects in a haptic virtual reality environment.
Computers have been long used to display objects in a computerized environment. Examples are CAD (computer-aided design) systems that are used in the design of mechanical parts, such as parts used in an assembly process. For example, a designer may use a CAD system to design parts for an automobile, which are then produced and used in an automobile assembly line. Such CAD systems require significant training and understanding in using the computerized design system. CAD systems are typically difficult to use and lack the freedom and expressiveness of traditional noncomputerized drawing, sketching, and model-making procedures.
A more modern approach uses a virtual reality technique to model objects in a computerized virtual environment. Virtual Reality (VR) is an artificial environment constructed by a computer which permits the user to interact with that environment as if the user were actually immersed in the environment. Early VR devices permitted the user to see three-dimensional (3-D) depictions of an artificial environment and to move within that environment. The reality of the VR environment is enhanced by the ability of a user to manipulate virtual objects within the virtual environment using hand motions and gestures. A designer may use a virtual tool to manipulate and/or modify a computerized model or virtual object in the virtual environment. However, a designer must be able to accurately evaluate the virtual object. One way the designer can evaluate the virtual object is by touching and feeling the surface of the object by using a virtual tool which the designer controls through a haptic interface device, such as a joystick, glove, stylus or other physical device.
Many existing virtual reality techniques do not provide for a realistic feeling of interaction by the designer. The designer cannot feel when virtual tools touch the virtual object. Moreover, in some cases, the virtual tool may pass through the virtual object without any impediment, thereby severely degrading the realism of the experience and the designer""s ability to feel all parts of the virtual object accurately.
Thus, there is a need for a 3-D computerized modeling system that overcomes the problems of CAD techniques and traditional noncomputerized modeling techniques. One object of the invention is to provide a haptic feedback approach that aids the user of the system in evaluating the whole object including special features by giving the user useful interactive force feedback. This feedback is particularly useful when the user skirts the surface of a virtual object and encounters a special case such as an edge, a xe2x80x9chole,xe2x80x9d or other feature in the virtual object, or attempts to penetrate it.
Being able to feel the virtual object allows the user to resolve visual ambiguities, such as a shape that may appear either concave or convex as perceived by an observer. The user may rely on haptic feedback when modifying the object such as scratching a slight groove in the object, which the user then deepens or expands while receiving feedback through the tool on the shape and current depth of the groove. Feedback also allows the designer to monitor and modulate the cutting rate or amount of change induced by the virtual tool. Haptic feedback also helps the user navigate around and on the surface of the object; that is, using the feel of the object to know where the virtual tool is on the object.
The system of the invention may be used for different purposes such as in a medical teaching system, in other educational systems, for seismic data analysis and interpretation, in a computer game, and other purposes.
The invention relates to a method for interfacing with a virtual object in a haptic virtual environment, including the steps of generating a virtual object including a virtual surface in the haptic virtual environment; sensing a location of a user in real space; determining a virtual tool having discrete points for use by the user in the haptic virtual environment; determining a haptic interface location in the haptic virtual environment in response to the location of the user in real space; determining locations for the points of the virtual tool in the haptic virtual environment in comparison to the haptic interface location and the location of the virtual surface; determining a geometry for the virtual surface at an area of penetration of the virtual tool if one or more of the points penetrates the virtual surface; and limiting movement of the virtual tool based on (i) the geometry of the virtual surface, (ii) the location of one or more points, and (iii) the haptic interface location.
In another embodiment of the invention, the method includes limiting movement of the virtual tool by moving the position of the virtual tool toward the haptic interface location. In a further embodiment, the method includes determining a surface direction vector in response to the location of one or more points of the virtual tool and determining if one or more of the points penetrates the virtual surface. In another embodiment, the method includes determining the geometry of the virtual surface to be an edge geometry. In another embodiment, the method includes calculating an interaction force between the virtual object and virtual tool in response to determining the locations of the points of the virtual tool.
The invention also relates to a system for interfacing with a virtual object in a haptic virtual environment. The virtual object includes a virtual surface. The system also includes a haptic interface device, a virtual tool, and a modeling application. The haptic interface device senses a location of a user in real space. The virtual tool includes a plurality of discrete points for use by the user in the haptic virtual environment. The modeling application is in communication with the haptic interface device, the virtual object, and the virtual tool, and the modeling application (a) determines a haptic interface location in the haptic virtual environment in response to the location of the user in real space; (b) determines locations for the points of the virtual tool in the haptic virtual environment in comparison to the haptic interface location and the location of the virtual surface; (c) determines a geometry for the virtual surface at an area where one or more points of the virtual tool penetrates the virtual surface; and (d) limits movement of the virtual tool based on (i) the geometry of the virtual surface, (ii) the location of one or more points of the virtual tool, and (iii) the haptic interface location.
In one embodiment, the modeling application limits the movement of the virtual tool by moving the virtual tool toward the haptic interface location. In another embodiment, the system includes a surface direction vector that the modeling application determines based on the locations of one or more points of the virtual tool that have penetrated the virtual surface. In another embodiment, the geometry of the virtual surface is an edge geometry. In a further embodiment, the modeling application calculates an interaction force between the virtual object and the virtual tool based on the locations of the points of the virtual tool.
In another embodiment, the invention relates to a method for interfacing with a virtual surface in a haptic virtual environment, including the steps of generating a virtual surface in the haptic virtual environment; sensing a location of a user in real space; determining a virtual representation of the user in real space, the virtual representation comprising a plurality of discrete points; determining a haptic interface location in the haptic virtual environment in response to the location of the user in real space; determining a virtual representation location in the haptic virtual environment; moving the virtual representation location toward the haptic interface location in the haptic virtual environment; and limiting movement of the virtual representation based on a geometry of the surface and on preventing any one of the plurality of discrete points of the virtual representation from substantially penetrating the virtual surface.